package 单周赛.october;

/**
 *
 */
public class 第369场单周赛 {

    public static void main(String[] args) {

    }

    /**
     * 统计每个位是 1 出现的次数
     */
    public int findKOr(int[] nums, int k) {
        int[] record = new int[32];

        for (int num : nums) {
            for (int i = 0; i < 32; i++) {
                if (((num >> i) & 1) == 1) {
                    record[i]++;
                }
            }
        }

        int ans = 0;

        for (int i = 0; i < record.length; i++) {
            if (record[i] >= k) {
                ans += Math.pow(2, i);
            }
        }
        return ans;
    }


    /**
     * 分类讨论
     */
    public long minSum(int[] nums1, int[] nums2) {
        int zero1Cnt = 0, zero2Cnt = 0;
        long sum1 = 0, sum2 = 0;
        for (int num : nums1) {
            if (num == 0) {
                zero1Cnt++;
            }
            sum1 += num;
        }
        for (int num : nums2) {
            if (num == 0) {
                zero2Cnt++;
            }
            sum2 += num;
        }

        if (zero1Cnt == 0 && zero2Cnt != 0 && sum1 < sum2 + zero2Cnt) {
            return -1;
        } else if (zero1Cnt != 0 && zero2Cnt == 0 && sum2 < sum1 + zero1Cnt) {
            return -1;
        } else if (zero1Cnt == 0 && zero2Cnt == 0 && sum1 != sum2) {
            return -1;
        }
        return Math.max(zero1Cnt + sum1, zero2Cnt + sum2);
    }

}
